main(){
  //类的作用：封装数据和方法，用于批量生产对象
  Person p=new Person();
//Dart 中可以省略new 关键字
//1.创建一个新对象
//2.对象进行初始化
//3.返回这个新的对象
Person p1=Person();
p.name='李四';
p.say();
p1.say();

//调用命名构造函数
Person p2=new Person.male(name: '张三', age: 18);
p2.say();

}

//类的基础用法
class Person{
  //属性（相当于定义变量）
  String? name;
  int? age;
  String? sex;
  //构造函数(主)，跟类名同名
  //Person({this.name,this.age,this.sex}){
   
    //print('我是构造函数');
    //this.name=name;
    //this.age=age;
    //this.sex=sex;

  //}
  //命名构造函数(次),可以有多个
  //Person.male({String? name,int? age}){
//print('命名构造函数被调用了');
//this.name=name;
//this.age=age;
//
//this.sex='男';
//  }

  Person({this.name,this.age,this.sex});
  //构造函数的简化。：后面的也可以做属性的初始化
  Person.male({this.name,this.age}):this.sex='男111';




  //方法(相当于定于函数)
  void say(){
    print('我是$name,我今年$age岁,我是$sex');
    print('我是${this.name}');
  }


}